Included under the broad category of “electronic design automation” are numerous software tools that assist in the development of integrated circuits (ICs), printed circuit boards (PCBs), and other electronics components and/or systems. In some cases, such software (operating on multiple computers) allows teams of designers to collaborate and simultaneously edit the same design. Those designers may be located in geographically-distant regions.
Although offering many advantages (or potential advantages), such computer-aided collaboration also presents a number of challenges. One such challenge relates to communication of design data over the Internet or other networks. Despite the complexity of many electronic designs, there is almost always a desire to minimize the amount of data that must be transmitted over a network. For example, numerous designers working on the same IC, PCB or other project may each be working from a local copy of the design. These multiple copies must be kept synchronized. Frequent synchronization is desirable so that each designer will be aware of the latest changes by other designers. However, increasing the frequency with which each local design copy is updated also increases the amount of data transmission across a network, and can result in slow system performance.
Synchronization can also pose other challenges. In some cases, the order in which certain edits are made to a design can become important. For example, dimensional rounding errors can accumulate as a design is changed. Altering the order in which those changes occur can affect the magnitude of the rounding errors. If edits to all local copies of a design are not performed in the same order, the different copies can become non-identical. Another synchronization challenge relates to conflicting edits made by different designers. Because of network latency, delays in updating a local copy of a design, or other reasons, a first designer may edit a local copy of a design without knowing that a second designer has previously made a conflicting edit. The first designer will usually be forced to reverse the edit he or she attempted to make. Although the editing software in use may automatically reverse the first user's edit, the process can still be time-consuming and inconvenient, and avoiding the need for such reversals is desirable. It would thus be helpful to avoid from the outset changing a local design copy in a manner that conflicts with another edit.